///////////////////////////////////////////////////////////
//  ICommand.h
//  Implementation of the Interface ICommand
//  Created on:      21-Sep-2013 12:06:26 PM
//  Original author: Jakkaphan Aiemcharoenjit
///////////////////////////////////////////////////////////

#if !defined(EA_EACBE8E0_6BE0_43ac_BF45_10B1C15FD89C__INCLUDED_)
#define EA_EACBE8E0_6BE0_43ac_BF45_10B1C15FD89C__INCLUDED_

#include "IViewCtrl.h"
#include "MemoryObj.h"

namespace UI
{
  namespace CMD
  {
    class ICommand : public MemoryObj
    {

    public:
      enum CommandType
      {
        UNKNOWN_CMD = 0,
        NEWCHECKLIST_CMD = 1,
        NEWTEMPLATE_CMD = 2,
        NEWITEM_CMD = 3,
        NEWCHOICE_CMD = 4,
        EDITCHECKLIST_CMD = 5,
        EDITTEMPLATE_CMD = 6,
        EDITITEM_CMD = 7,
        EDITCHOICE_CMD = 8,
        SAVECHECKLIST_CMD = 9,
        SAVETEMPLATE_CMD = 10,
        SAVEITEM_CMD = 11,
        BACKCHECKLIST_CMD = 12,
        BACKTEMPLATE_CMD = 13,
        VIEWCHECKLIST_CMD = 14,
        VIEWTEMPLATE_CMD = 15,
        SENDMAIL_CMD = 16,
        INSERTITEM_CMD = 17,
        SAVECHOICE_CMD = 18
      };
      virtual void Execute() =0;
      virtual CommandType GetType() =0;

    };
  }
}
#endif // !defined(EA_EACBE8E0_6BE0_43ac_BF45_10B1C15FD89C__INCLUDED_)
